/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* luckyNumbers(int** matrix, int matrixSize, int* matrixColSize, int* returnSize)
{
    int flag=0;
    int *array  =(int *) malloc(matrixSize*sizeof(int));
    for(int i=0;i<matrixSize;i++)
    {
    int min=0;
        for(int j=1;j<matrixColSize[0];j++)
            if(matrix[i][j]<matrix[i][min])
                min=j;
    int max=0;
    for(int k=1;k<matrixSize;k++)
        if(matrix[k][min]>matrix[max][min])
            max=k;

    if(max==i)
    {
        array[flag++]=matrix[max][min];
    }

    }  
    *returnSize = flag;
    return array;  
}